package pl.wr.particle;

import pl.wr.core.IMass;
import pl.wr.core.IObjectProperties;
import pl.wr.math.number.Fraction;
import pl.wr.particle.units.ParticleMass;
import pl.wr.physics.units.others.e;
import pl.wr.physics.units.quantum.units.Spin;

/**
 * Wlasciwosci czastki
 * 
 * @author wieslaw.rodak
 * @version $Revision: 1.0 $
 */
@Deprecated
public class ParticleProperties implements IObjectProperties {

	/**
	 * Field mass.
	 */
	private ParticleMass mass;
	// private double energy;
	/**
	 * Field elementaryCharge.
	 */
	private e elementaryCharge;
	/**
	 * Field isospin.
	 */
	private Fraction isospin;
	/**
	 * Field spin.
	 */
	private Spin spin;
	/**
	 * Field isAntiParticle.
	 */
	private boolean isAntiParticle;
	/**
	 * Field generation.
	 */
	private int generation;

	/**
	 * Method getSpin.
	 * 
	 * @return Spin
	 */
	@Deprecated
	public Spin getSpin() {
		return spin;
	}

	/**
	 * Method setSpin.
	 * 
	 * @param spin
	 *            Spin
	 */
	@Deprecated
	public void setSpin(Spin spin) {
		this.spin = spin;
	}

	/**
	 * Method getMass.
	 * 
	 * 
	 * @return ParticleMass * @see pl.wr.universe.IObjectProperties#getMass()
	 */
	@Override
	@Deprecated
	public ParticleMass getMass() {
		return mass;
	}

	/**
	 * Method setMass.
	 * 
	 * @param mass
	 *            IMass
	 * 
	 * @see pl.wr.universe.IObjectProperties#setMass(IMass)
	 */
	@Override
	@Deprecated
	public void setMass(IMass mass) {
		this.mass = (ParticleMass) mass;
	}

	// public double getEnergy() {
	// return energy;
	// }
	// public void setEnergy(double energy) {
	// this.energy = energy;
	// }
	/**
	 * Method getElementaryCharge.
	 * 
	 * @return e
	 */
	@Deprecated
	public e getElementaryCharge() {
		return elementaryCharge;
	}

	/**
	 * Method setElementaryCharge.
	 * 
	 * @param elementaryCharge
	 *            e
	 */
	@Deprecated
	public void setElementaryCharge(e elementaryCharge) {
		this.elementaryCharge = elementaryCharge;
	}

	/**
	 * Method isAntiParticle.
	 * 
	 * @return boolean
	 */
	@Deprecated
	public boolean isAntiParticle() {
		return isAntiParticle;
	}

	/**
	 * Method setAntiParticle.
	 * 
	 * @param isAntiParticle
	 *            boolean
	 */
	@Deprecated
	public void setAntiParticle(boolean isAntiParticle) {
		this.isAntiParticle = isAntiParticle;
	}

	/**
	 * Method getGeneration.
	 * 
	 * @return int
	 */
	@Deprecated
	public int getGeneration() {
		return generation;
	}

	/**
	 * Method setGeneration.
	 * 
	 * @param generation
	 *            int
	 */
	@Deprecated
	public void setGeneration(int generation) {
		this.generation = generation;
	}

	/**
	 * Method getIsospin.
	 * 
	 * @return Fraction
	 */
	@Deprecated
	public Fraction getIsospin() {
		return isospin;
	}

	/**
	 * Method setIsospin.
	 * 
	 * @param isospin
	 *            Fraction
	 */
	@Deprecated
	public void setIsospin(Fraction isospin) {
		this.isospin = isospin;
	}

	/**
	 * Method toString.
	 * 
	 * @return String
	 */
	@Override
	@Deprecated
	public String toString() {
		final StringBuilder builder = new StringBuilder(32);
		builder.append("ParticleProperties [mass=").append(mass)
				.append(", elementaryCharge=").append(elementaryCharge)
				.append(", isospin=").append(isospin).append(", spin=")
				.append(spin).append(", isAntiParticle=")
				.append(isAntiParticle).append(", generation=")
				.append(generation).append(']');
		return builder.toString();
	}

}
